iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0
Modern Web

就是要搞懂 JavaScript 啦!系列 第 5

Day05 變數──值的容器

  • 分享至 

  • xImage
  •  

變數(Variables)

在執行程式時,我們需要紀錄某些狀態的改變,例如某扇門開著或關著,某項物品當前有多少庫存等。

為了因應其狀態的改變,程式中定義了能被賦予值的符號容器,也就是「變數」

變數的特性是能夠重複使用和修改,主要功能是為了追蹤程式執行過程中,特定狀態前後所發生的變化。


變數類型

靜態型別(Static typing)

  • 又稱為「強型別(Strongly typed)」或「類型強制(Type enforcement)」
  • 變數值無法改變型別,能夠防止意外轉型
  • 多被認為較能維持程式正確性

動態型別(dynamic typing)

  • 又稱為「動態型別(Dynamic typing)」或「弱型別(Weak typing)
  • 允許變數擁有任意型別,也能夠改變型別
  • 強調型別是為了值,而非為了變數而存在
  • 擁有更多靈活性

JavaScript 即是屬於動態型別。


JS 變數規則

  • 變數使用前需要宣告
  • 每個作用域中只需要宣告一次(某些情況下重複宣告會報錯)
  • 變數可以不限次數重複使用

命名規則

  • 變數必須是符合規則的識別字(identifier)
  • 一個識別字必須以 a-zA-Z$_ 或 Unicode 字符開頭(變數可以是純中文)
  • 大小寫不同視為不同變數(case sensitive)
  • 變數名稱不能是 JS 的保留字(Reserved word,也稱關鍵字 Keyword)

一般在變數中使用到的字母大多基於 ASCII 編碼,這也是最理想的命名方式,也是最常見的慣例。不過 JS 允許使用涵蓋範圍更大的 Unicode 作為變數,因此也同樣接受中文作為變數識別字。


JS 的變數宣告種類

JS 擁有 3 種變數宣告保留字:

  • var:最早的變數宣告保留字,使用 var 無法形成區塊作用域,無法創造屬於區塊的變數。
  • let:ES6 以後新增的保留字,宣告的變數「能夠」被修改,在區塊使用內能夠形成區塊作用域。
  • const:ES6 以後新增的保留字,宣告的變數「無法」被修改,在區塊使用內能夠形成區塊作用域。

常數(Constants)

常數是變數當中一種特別的類型,只在宣告時賦值一次,此後不允許(或不打算)在程式執行過程改變值。

JS 在 ES6 以後新增了保留字 const,由 const 宣告的變數僅能賦值一次,若重新賦值會收到程式錯誤,可以防止變數在程式進行時被意外修改。

常數的使用慣例(非強制)

  • 經常是字母全體大寫,而非駝峰式命名(Camel-Case)
  • 在單字之間用 _ 連接

範例

const TAX_RATE = 0.05;

let amount = 100;
amount = amount + (amount * TAX_RATE);
console.log( amount ); // 105

參考資料


上一篇
Day04 宿主 or 原生?原來你不是我們家的孩子!
下一篇
Day06 變數查詢:到底是左邊還是右邊啦!
系列文
就是要搞懂 JavaScript 啦!73
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言